//监听发送验证码按钮
var clock = '';
var nums = 10;
var rjyz = 0;
$(document).ready(function () {
    $('#send-btn').click(function (e) {
        e.preventDefault(); // 阻止按钮默认行为
        var email = document.getElementById("email").value;
        var username = document.getElementById("username").value;
        var password = document.getElementById("password").value;
        if (isEmpty(username) && isEmpty(password) && isEmpty(email)) {
            alert('请填写用户名,密码和邮箱后再获取验证码!')
        } else {
            if (rjyz === 1) {
                $.get("sendMes", {'email': email, 'username': username}, function (date) {
                    $("#msgAlert").html(date);
                    $(".alert").addClass('show');
                    var str = date.toString();
                    if (str.indexOf("消息号1") !== -1) {//判断是否发送成功
                        //设置发送按钮开始倒计时3分钟
                        setTime($('#send-btn'));
                    }
                    alertHide();
                })
            } else {
                alert('请先完成人机验证!');
            }
        }


    });
    //滑动验证码
    $('#mpanel1').slideVerify({
        type: 1,		//类型
        vOffset: 5,	//误差量，根据需求自行调整
        barSize: {
            width: '100%',
            height: '40px',
        },
        ready: function () {
        },
        success: function () {
            // alert('验证成功，添加你自己的代码！');
            rjyz = 1;
        },
        error: function () {
//		        	alert('验证失败！');
        }

    });
    $('#sign').click(function (e) {//注册
        e.preventDefault();
        var apptype = document.getElementById("apptype").value;
        var username = document.getElementById("username").value;
        var password = document.getElementById("password").value;
        var confirm_pwd = document.getElementById("confirm_pwd").value;
        var phone = document.getElementById("phone").value;
        var email = document.getElementById("email").value;
        // var message = document.getElementById("message").value;

        if (isEmpty(username) && isEmpty(password) && isEmpty(email)) {
            alert('请填写必输字段后再注册!')
        } else {
            if (rjyz === 1) {
                $.get("signUp", {
                    'email': email, 'username': username, 'password': password,
                    'confirm_pwd': confirm_pwd, 'phone': phone,'apptype':apptype//, 'message': message
                }, function (date) {
                    $("#msgAlert").html(date);
                    $(".alert").addClass('show');
                    var str = date.toString();
                    alertHide();
                    if (str.indexOf("消息号1") !== -1) {//判断是否发送成功
                        setTimeout(function () {
                            location.href = "/login/";
                        }, 3000);
                    }
                })
            } else {
                alert('请先完成人机验证!');
            }

        }

    });
    $('#changePwd').click(function (e) {//修改密码
        e.preventDefault();
        var apptype = document.getElementById("apptype").value;
        var username = document.getElementById("username").value;
        var password = document.getElementById("password").value;
        var confirm_pwd = document.getElementById("confirm_pwd").value;
        var email = document.getElementById("email").value;
        var message = document.getElementById("message").value;

        $.get("changePd", {
            'email': email, 'username': username, 'password': password,
            'confirm_pwd': confirm_pwd, 'message': message,'apptype':apptype
        }, function (date) {
            $("#msgAlert").html(date);
            $(".alert").addClass('show');
            var str = date.toString();
            alertHide();
            if (str.indexOf("消息号1") !== '-1') {//判断是否发送成功
                setTimeout(function () {
                    location.href = "/login/";
                }, 3000);
            }
        })
    });
    $('#back').click(function (e) {//返回上一页
        e.preventDefault(); // 阻止按钮默认行为
        window.history.back();
    });
    $('#username').blur(function () {
        // e.preventDefault();
        var username = document.getElementById("username").value;
        if (username !== '') {
            $.get("checkUsername", {
                'username': username
            }, function (date) {
                $("#msgAlert").html(date);
                $(".alert").addClass('show');
                alertHide();
            })
        }
    });
});

function isEmpty(value) {
    return !value;
}

var countdown = 180;

//发送验证码倒计时方法
function setTime(obj) {
    if (countdown === 0) {
        obj.attr('disabled', false);
        //obj.removeattr("disabled");
        obj.html("获取验证码");
        countdown = 180;
        return;
    } else {
        obj.attr('disabled', true);
        obj.html("重新发送(" + countdown + ")");
        countdown--;
    }
    setTimeout(function () {
            setTime(obj)
        }
        , 1000)
}


//设置弹窗消息5秒后消失
function alertHide() {
    var divElement = $(".alert")
    var isIn = false; // 鼠标是否在消息框中

    divElement.on({ // 在setTimeout执行之前先判定鼠标是否在消息框中
        mouseover: function () {
            isIn = true;
        },
        mouseout: function () {
            isIn = false;
        }
    });
    // 短暂延时后上浮消失
    setTimeout(function () {
        var IntervalMS = 20; // 每次上浮的间隔毫秒
        var floatSpace = 60; // 上浮的空间(px)
        var nowTop = divElement.offset().top; // 获取元素当前的top值
        var stopTop = nowTop - floatSpace;    // 上浮停止时的top值
        divElement.fadeOut(IntervalMS * floatSpace); // 设置元素淡出

        var upFloat = setInterval(function () { // 开始上浮
            if (nowTop >= stopTop) { // 判断当前消息框top是否还在可上升的范围内
                divElement.css({"top": nowTop--}); // 消息框的top上升1px
            } else {
                clearInterval(upFloat); // 关闭上浮
                divElement.remove();    // 移除元素
            }
        }, IntervalMS);

        if (isIn) { // 如果鼠标在setTimeout之前已经放在的消息框中，则停止上浮
            clearInterval(upFloat);
            divElement.stop();
        }

        divElement.hover(function () { // 鼠标悬浮时停止上浮和淡出效果，过后恢复
            clearInterval(upFloat);
            divElement.stop();
        }, function () {
            divElement.fadeOut(IntervalMS * (nowTop - stopTop)); // 这里设置元素淡出的时间应该为：间隔毫秒*剩余可以上浮空间
            upFloat = setInterval(function () { // 继续上浮
                if (nowTop >= stopTop) {
                    divElement.css({"top": nowTop--});
                } else {
                    clearInterval(upFloat); // 关闭上浮
                    divElement.remove();    // 移除元素
                }
            }, IntervalMS);
        });
    }, 5000);

    // window.setTimeout(function () {
    //         $(".alert").removeClass("show");
    // }, 5000);//显示的时间


}

// function send(event, thisBtn) {
//     // document.form1.target="nm_iframe";//设置只执行函数,不跳转页面
//     // document.form1.action="/sendMes/";
//     // document.form1.submit();
//     event.preventDefault();
//     var email = document.getElementById("email").value;
//     alert(email);
//     btn = thisBtn;
//     btn.disabled = true; //将按钮置为不可点击
//     btn.value = nums + '秒后可重新获取';
//     clock = setInterval(doLoop, 1000); //一秒执行一次
// }

function doLoop() {
    nums--;
    if (nums > 0) {
        btn.value = nums + '秒后可重新获取';
    } else {
        clearInterval(clock); //清除js定时器
        btn.disabled = false;
        btn.value = '发送验证码';
        nums = 10; //重置时间
    }
}

function signUp(event, thisBtn) {
    event.preventDefault();
    document.form1.action = "/signUp/";
    document.form1.submit();
}

var commonUtil = {
    /**
     * 弹出消息框
     * @param msg 消息内容
     * @param type 消息框类型（参考bootstrap的alert）
     */
    alert: function (msg, type) {
        if (typeof (type) == "undefined") { // 未传入type则默认为success类型的消息框
            type = "success";
        }
        // 创建bootstrap的alert元素
        var divElement = $("<div></div>").addClass('alert').addClass('alert-' + type).addClass('alert-dismissible').addClass('col-md-4').addClass('col-md-offset-4');
        divElement.css({ // 消息框的定位样式
            "position": "absolute",
            "top": "80px"
        });
        divElement.text(msg); // 设置消息框的内容
        // 消息框添加可以关闭按钮
        var closeBtn = $('<button type="button" class="btn-close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>');
        $(divElement).append(closeBtn);
        // 消息框放入到页面中
        $('body').append(divElement);
        return divElement;
    },

    /**
     * 短暂显示后上浮消失的消息框
     * @param msg 消息内容
     * @param type 消息框类型
     */
    message: function (msg, type) {
        var divElement = commonUtil.alert(msg, type); // 生成Alert消息框
        var isIn = false; // 鼠标是否在消息框中

        divElement.on({ // 在setTimeout执行之前先判定鼠标是否在消息框中
            mouseover: function () {
                isIn = true;
            },
            mouseout: function () {
                isIn = false;
            }
        });

        // 短暂延时后上浮消失
        setTimeout(function () {
            var IntervalMS = 20; // 每次上浮的间隔毫秒
            var floatSpace = 60; // 上浮的空间(px)
            var nowTop = divElement.offset().top; // 获取元素当前的top值
            var stopTop = nowTop - floatSpace;    // 上浮停止时的top值
            divElement.fadeOut(IntervalMS * floatSpace); // 设置元素淡出

            var upFloat = setInterval(function () { // 开始上浮
                if (nowTop >= stopTop) { // 判断当前消息框top是否还在可上升的范围内
                    divElement.css({"top": nowTop--}); // 消息框的top上升1px
                } else {
                    clearInterval(upFloat); // 关闭上浮
                    divElement.remove();    // 移除元素
                }
            }, IntervalMS);

            if (isIn) { // 如果鼠标在setTimeout之前已经放在的消息框中，则停止上浮
                clearInterval(upFloat);
                divElement.stop();
            }

            divElement.hover(function () { // 鼠标悬浮时停止上浮和淡出效果，过后恢复
                clearInterval(upFloat);
                divElement.stop();
            }, function () {
                divElement.fadeOut(IntervalMS * (nowTop - stopTop)); // 这里设置元素淡出的时间应该为：间隔毫秒*剩余可以上浮空间
                upFloat = setInterval(function () { // 继续上浮
                    if (nowTop >= stopTop) {
                        divElement.css({"top": nowTop--});
                    } else {
                        clearInterval(upFloat); // 关闭上浮
                        divElement.remove();    // 移除元素
                    }
                }, IntervalMS);
            });
        }, 1500);
    }
}


function goBack() {
    window.history.back();
}
